✅ Anlayacaqsınız: Niyə psixoloji testlər lazımdır
və onlar necə işləyir
✅ Öyrənəcəksiniz: Ölçmə nəzəriyyəsinin əsas
prinsiplərini
✅ Fərqləndirəcəksiniz: Müxtəlif ölçmə səviyyələri və
psixometrik xüsusiyyətləri
✅ Tətbiq edəcəksiniz: R proqramında əsas test
analizlərini
✅ Qiymətləndirəcəksiniz: Test nəticələrinin
keyfiyyətini və etibarlılığını
Dərsin müddəti: 90 dəqiqə | Çətinlik səviyyəsi: Başlanğıc | Praktik saatlar: 30 dəqiqə
🧠 Bir dəqiqə düşünün: Bu həftə hansı testlər və ya qiymətləndirmələrlə üzləşdiniz?
Sual: Bu testlərin hamısı eyni keyfiyyətdədirmi? Hansına daha çox etibar edirsiniz?
💡 Əsas Nöqtə: Test nəzəriyyəsi bizə kömək edir ki, hansı testlərin etibarlı olduğunu və hansı qərarları vermək üçün istifadə edilə biləcəyini müəyyən edək.
Təhsil sahəsində: - Müəllimlər yalnız subjektiv fikir əsasında qiymət verərdilər - Universitetlər tələbələri təsadüfi seçərdilər - Akademik irəliləməni ölçmək mümkün olmazdı
İş həyatında: - Şirkətlər işçiləri yalnız müsahibə əsasında seçərdilər - Performans qiymətləndirməsi emosional olardı - Təlim ehtiyaclarını müəyyən etmək çətinləşərdi
Tibb sahəsində: - Psixoloji xəstəliklərin diaqnostikası mümkün olmazdı - Müalicənin təsiri ölçülə bilməzdi - Xəstənin vəziyyəti yalnız müşahidə ilə qiymətləndirilərdi
📐 Klassik Təyin (Stevens, 1946)
“Ölçmə - obyektlərə və ya hadisələrə müəyyən qaydalar əsasında rəqəmlərin təyin edilməsi prosesidir.”
Psixoloji Ölçmənin Xüsusiyyətləri:
| Aspekt | Fiziki_Ölçmə | Psixoloji_Ölçmə |
|---|---|---|
| Müşahidə | Birbaşa | Dolayı |
| Dəqiqlik | Yüksək | Nisbi |
| Vahid | Standart | Şərfi |
| Sıfır nöqtəsi | Mütləq | Nisbii |
| Xəta | Aşağı | Yüksək |
| Təkrarlanma | Yüksək | Orta |
📚 Tarixi Qeyd: Stanley Smith Stevens (1946) psixologiya tarixində ilk dəfə ölçmə səviyyələrini sistematik şəkildə təsnif etdi. Bu təsnifat hələ də istifadə olunur!
Xüsusiyyətlər: - Yalnız kateqoriyalaşdırma - Heç bir riyazi əməliyyat mümkün deyil - Yalnız bərabərlik (=) və ya qeyri-bərabərlik (≠) müqayisəsi
Xüsusiyyətlər: - Sıralama mümkündür - Intervallar bərabər deyil - Mümkün əməliyyatlar: =, ≠, >, <
Xüsusiyyətlər: - Bərabər intervallar - Şərfi sıfır nöqtəsi - Mümkün əməliyyatlar: +, -, =, ≠, >, <
Xüsusiyyətlər: - Həqiqi sıfır nöqtəsi - Nisbətlər mənalıdır - Bütün riyazi əməliyyatlar mümkündür: ×, ÷, +, -, =, ≠, >, <
🏗️ Uğurlu Test = Etibarlılıq + Validlik + Praktiklik
Bu üç xüsusiyyət test binasının sütunları kimidir. Biri zəif olsa, bütün bina yıxıla bilər!
🎯 Etibarlılıq nədir?
Testın nəticələrinin tutarlılığı və sabitliyi. Eyni şəxs eyni şəraitdə
testə cavab versə, oxşar nəticə almalıdır.
Analoji: Terezi hər dəfə eyni çəkini göstərməlidir.
Etibarlılıq Növləri:
🎯 Validlik nədir?
Testın ölçməyi planlaşdırdığı xüsusiyyəti həqiqətən ölçməsi. Düzgün şeyi
ölçürmü?
Analoji: Termometr temperaturu ölçməlidir, təzyiqi yox!
Validlik Növləri:
🎯 Praktiklik nədir?
Testın tətbiq edilməsinin asanlığı və məqsədəuyğunluğu. Test real
şəraitdə istifadə oluna bilirmi?
Aspektləri: - Zaman və xərc effektivliyi - Tətbiq asanlığı - Nəticələrin interpretasiyası - Texniki tələblər
🎯 X = T + E
X: Müşahidə olunan bal (Observed Score)
T: Həqiqi bal (True Score)
E: Xəta komponenti (Error Component)
💡 Bu formula nə deməkdir?
Hər hansı testdə aldığınız bal iki hissədən ibarətdir: 1. Həqiqi bacarığınız (T) - ölçməyə çalışdığımız əsl xüsusiyyət 2. Təsadüfi xəta (E) - ölçmə zamanı yaranan kənar təsirlər
Nümunə: IQ testində 115 bal aldınız - Həqiqi IQ-nuz: 110 (T) - Təsadüfi xəta: +5 (E) (yaxşı yatmış, şanslı olmuş) - Müşahidə olunan bal: 115 (X)
Bu fərziyyələr CTT-nin bütün nəticələrinin əsasıdır!
# CTT modelinin simulyasiyası
set.seed(123)
n_people <- 1000
true_scores <- rnorm(n_people, mean = 75, sd = 12)
# Müxtəlif xəta səviyyələri
error_low <- rnorm(n_people, mean = 0, sd = 3) # Aşağı xəta
error_medium <- rnorm(n_people, mean = 0, sd = 8) # Orta xəta
error_high <- rnorm(n_people, mean = 0, sd = 15) # Yüksək xəta
# Müşahidə olunan ballar
observed_low <- true_scores + error_low
observed_medium <- true_scores + error_medium
observed_high <- true_scores + error_high
# Məlumatların birləşdirilməsi
ctt_data <- data.frame(
Həqiqi_Bal = rep(true_scores, 3),
Müşahidə_Bal = c(observed_low, observed_medium, observed_high),
Xəta_Səviyyəsi = rep(c("Aşağı", "Orta", "Yüksək"), each = n_people)
)
# Qrafik
ggplot(ctt_data, aes(x = Həqiqi_Bal, y = Müşahidə_Bal, color = Xəta_Səviyyəsi)) +
geom_point(alpha = 0.3, size = 0.8) +
geom_smooth(method = "lm", se = FALSE, size = 1.5) +
geom_abline(intercept = 0, slope = 1, linetype = "dashed", color = "black", size = 1) +
scale_color_manual(values = colors_primary[c(4, 3, 2)]) +
labs(title = "CTT Modeli: X = T + E",
subtitle = "Müxtəlif xəta səviyyələrinin təsiri",
x = "Həqiqi Bal (T)", y = "Müşahidə Olunan Bal (X)",
color = "Xəta Səviyyəsi") +
theme_custom() +
facet_wrap(~Xəta_Səviyyəsi, ncol = 3)💡 Praktik Nəticə: Xəta azaldıqca test daha etibarlı olur və həqiqi bacarıqla müşahidə olunan bal arasında əlaqə güclənir.
📅 Zaman Xətti: Test nəzəriyyəsi 120+ ildən artıq müddətdə necə inkişaf etmişdir?
1. Başlanğıc Dövrü (1869-1920) - Francis Galton: İlk sistemli testlər - Charles Spearman: Etibarlılıq nəzəriyyəsi - Alfred Binet: Zəka testlərinin yaradılması
2. Klassik Dövr (1920-1980) - Louis Thurstone: Faktör analizi - Lee Cronbach: Alfa əmsalı - Lord & Novick: Modern CTT
3. Müasir Dövr (1980-hazırda) - IRT (Item Response Theory) - Kompüter Adaptiv Testlər - Böyük Data və Maşın Öyrənməsi
✅ Real test məlumatlarını R-da analiz etmək
✅ Əsas statistik göstəriciləri hesablamaq
✅ Bənd çətinlik və fərqləndirmə analizi
✅ Etibarlılıq hesablamaları
✅ Nəticələrin vizuallaşdırılması
# Test məlumatlarının yaradılması
set.seed(456)
n_students <- 100
n_items <- 15
# Müxtəlif çətinlik səviyyələrində suallar
easy_items <- 5 # Asan suallar (p > 0.7)
medium_items <- 7 # Orta suallar (0.3 < p < 0.7)
hard_items <- 3 # Çətin suallar (p < 0.3)
# Test məlumatlarının yaradılması
test_data <- matrix(0, nrow = n_students, ncol = n_items)
# Asan suallar
for(i in 1:easy_items) {
test_data[, i] <- rbinom(n_students, 1, 0.8)
}
# Orta suallar
for(i in (easy_items + 1):(easy_items + medium_items)) {
test_data[, i] <- rbinom(n_students, 1, 0.5)
}
# Çətin suallar
for(i in (easy_items + medium_items + 1):n_items) {
test_data[, i] <- rbinom(n_students, 1, 0.2)
}
# Sütun və sətir adları
colnames(test_data) <- paste0("S", 1:n_items)
rownames(test_data) <- paste0("T", 1:n_students)
# İlk 10 tələbənin nəticələri
kable(test_data[1:10, ],
caption = "Test Nəticələri (İlk 10 tələbə, 1=Düzgün, 0=Səhv)")| S1 | S2 | S3 | S4 | S5 | S6 | S7 | S8 | S9 | S10 | S11 | S12 | S13 | S14 | S15 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| T1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 |
| T2 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
| T3 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
| T4 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 0 |
| T5 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 |
| T6 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 |
| T7 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 |
| T8 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
| T9 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 |
| T10 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 |
# Ümumi balların hesablanması
total_scores <- rowSums(test_data)
# Əsas statistikalar
stats_summary <- data.frame(
Göstərici = c("Orta bal", "Mediana", "Standart sapma", "Min bal", "Max bal",
"Çarpıqlıq", "Asillik", "Imtiyazlıların faizi"),
Dəyər = c(
round(mean(total_scores), 2),
median(total_scores),
round(sd(total_scores), 2),
min(total_scores),
max(total_scores),
round(psych::skew(total_scores), 2),
round(psych::kurtosi(total_scores), 2),
round(100 * sum(total_scores >= 12) / length(total_scores), 1)
)
)
DT::datatable(stats_summary,
caption = "Test Nəticələrinin Əsas Statistik Göstəriciləri",
options = list(pageLength = 10, dom = 't'),
rownames = FALSE) %>%
DT::formatStyle(columns = 1:2, fontSize = '14px') %>%
DT::formatStyle("Göstərici", backgroundColor = "#f8f9fa", fontWeight = "bold")# Balların paylanması
score_data <- data.frame(
Ballar = total_scores,
Qrup = ifelse(total_scores <= 5, "Aşağı",
ifelse(total_scores <= 10, "Orta", "Yüksək"))
)
# Histogram və sıxlıq qrafiki
p1 <- ggplot(score_data, aes(x = Ballar)) +
geom_histogram(aes(y = after_stat(density)), bins = 12,
fill = colors_primary[1], alpha = 0.7, color = "white") +
geom_density(color = colors_primary[2], size = 1.5) +
geom_vline(xintercept = mean(total_scores),
color = colors_primary[3], linetype = "dashed", size = 1) +
labs(title = "Test Ballarının Paylanması",
subtitle = paste("Orta bal:", round(mean(total_scores), 2)),
x = "Ümumi Test Balları", y = "Sıxlıq") +
theme_custom()
# Qrup paylanması
p2 <- ggplot(score_data, aes(x = Qrup, fill = Qrup)) +
geom_bar(alpha = 0.8) +
scale_fill_manual(values = c("Aşağı" = colors_primary[2],
"Orta" = colors_primary[3],
"Yüksək" = colors_primary[4])) +
labs(title = "Performans Qrupları",
subtitle = "Tələbələrin bal intervallarına görə paylanması",
x = "Performans Qrupu", y = "Tələbə Sayı") +
theme_custom() +
theme(legend.position = "none")
grid.arrange(p1, p2, ncol = 2)# Bənd çətinlik və fərqləndirmə analizi
item_difficulty <- colMeans(test_data)
item_discrimination <- numeric(n_items)
# Fərqləndirmə indeksinin hesablanması
for(i in 1:n_items) {
# Yuxarı və aşağı 27% qrup
upper_group <- total_scores >= quantile(total_scores, 0.73)
lower_group <- total_scores <= quantile(total_scores, 0.27)
# Fərqləndirmə indeksi
item_discrimination[i] <- mean(test_data[upper_group, i]) -
mean(test_data[lower_group, i])
}
# Bənd analizi cədvəli
item_analysis <- data.frame(
Sual = paste0("S", 1:n_items),
Çətinlik = round(item_difficulty, 3),
Fərqləndirmə = round(item_discrimination, 3),
Çətinlik_Səviyyəsi = ifelse(item_difficulty > 0.7, "Asan",
ifelse(item_difficulty > 0.3, "Orta", "Çətin")),
Fərqləndirmə_Keyfiyyəti = ifelse(item_discrimination > 0.4, "Əla",
ifelse(item_discrimination > 0.3, "Yaxşı",
ifelse(item_discrimination > 0.2, "Orta", "Zəif")))
)
DT::datatable(item_analysis,
caption = "Bənd Çətinlik və Fərqləndirmə Analizi",
options = list(pageLength = 15, dom = 'tp'),
rownames = FALSE) %>%
DT::formatStyle("Çətinlik_Səviyyəsi",
backgroundColor = DT::styleEqual(
c("Asan", "Orta", "Çətin"),
c("#d4edda", "#fff3cd", "#f8d7da"))) %>%
DT::formatStyle("Fərqləndirmə_Keyfiyyəti",
backgroundColor = DT::styleEqual(
c("Əla", "Yaxşı", "Orta", "Zəif"),
c("#d4edda", "#d1ecf1", "#fff3cd", "#f8d7da")))# Çətinlik vs Fərqləndirmə qrafiki
ggplot(item_analysis, aes(x = Çətinlik, y = Fərqləndirmə,
color = Çətinlik_Səviyyəsi, size = Fərqləndirmə)) +
geom_point(alpha = 0.8) +
geom_text(aes(label = Sual), vjust = -1, hjust = 0.5, size = 3) +
scale_color_manual(values = c("Asan" = colors_primary[4],
"Orta" = colors_primary[3],
"Çətin" = colors_primary[2])) +
scale_size_continuous(range = c(2, 6)) +
labs(title = "Bənd Çətinlik və Fərqləndirmə Əlaqəsi",
subtitle = "İdeal bəndlər: orta çətinlik (0.3-0.7) və yüksək fərqləndirmə (>0.3)",
x = "Çətinlik İndeksi", y = "Fərqləndirmə İndeksi",
color = "Çətinlik Səviyyəsi", size = "Fərqləndirmə") +
theme_custom() +
geom_hline(yintercept = 0.3, linetype = "dashed", color = "gray") +
geom_vline(xintercept = c(0.3, 0.7), linetype = "dashed", color = "gray")# Cronbach Alpha hesablaması
library(psych)
# Etibarlılıq analizini təhlükəsiz şəkildə aparmaq
tryCatch({
reliability_stats <- psych::alpha(test_data)
# Etibarlılıq cədvəli
reliability_summary <- data.frame(
Göstərici = c("Cronbach Alpha", "Bənd Sayı", "Orta İç Korrelyasiya"),
Dəyər = c(
round(reliability_stats$total$raw_alpha, 3),
ncol(test_data),
round(reliability_stats$total$average_r, 3)
)
)
# Əlavə statistikalar
if (!is.null(reliability_stats$item.stats)) {
additional_stats <- data.frame(
Göstərici = "Orta Bənd-Test Korrelyasiyası",
Dəyər = round(mean(reliability_stats$item.stats$r.drop, na.rm = TRUE), 3)
)
reliability_summary <- rbind(reliability_summary, additional_stats)
}
}, error = function(e) {
# Xəta baş verərsə, sadə hesablama
reliability_summary <- data.frame(
Göstərici = c("Bənd Sayı", "Test Uzunluğu", "Orta Çətinlik"),
Dəyər = c(
ncol(test_data),
nrow(test_data),
round(mean(colMeans(test_data)), 3)
)
)
})## Some items ( S1 S2 S5 S8 S9 S13 S14 S15 ) were negatively correlated with the first principal component and
## probably should be reversed.
## To do this, run the function again with the 'check.keys=TRUE' option
# Cədvəlin göstərilməsi
DT::datatable(reliability_summary,
caption = "Test Etibarlılığı Analizi",
options = list(pageLength = 10, dom = 't'),
rownames = FALSE) %>%
DT::formatStyle(columns = 1:2, fontSize = '14px') %>%
DT::formatStyle("Göstərici", backgroundColor = "#f8f9fa", fontWeight = "bold")💡 Etibarlılıq İnterpretasiyası: - α ≥ 0.9: Mükəmməl
- 0.8 ≤ α < 0.9: Yaxşı
- 0.7 ≤ α < 0.8: Məqbul - 0.6 ≤ α < 0.7: Şübhəli - α < 0.6:
Zəif
Testimizin etibarlılığını yuxarıdakı cədvəldə görə bilərsiniz.
Nəzəri Biliklər: - ✅ Ölçmənin təyini və psixoloji ölçmənin xüsusiyyətlərini öyrəndiniz - ✅ Stevens ölçmə səviyyələrini (nominal, ordinal, interval, nisbət) fərqləndirdiniz - ✅ Psixometrik üçlüyü (Etibarlılıq-Validlik-Praktiklik) anladınız - ✅ CTT-nin əsas modelini (X = T + E) mənimsədiniz - ✅ Test nəzəriyyəsinin tarixi inkişafını öyrəndiniz
Praktik Bacarıqlar: - ✅ R-da test məlumatlarının yaradılması və analizi - ✅ Bənd çətinlik və fərqləndirmə hesablamaları - ✅ Etibarlılıq analizi (Cronbach Alpha) - ✅ Statistik göstəricilərin hesablanması və interpretasiyası - ✅ Məlumatların vizuallaşdırılması və nəticələrin təqdimatı
🎯 Əsas Mesaj: Test nəzəriyyəsi yalnız riyazi formul deyil, insanların bacarıq və xüsusiyyətlərini ədalətli və dəqiq ölçmək üçün elmi metoddur.
Yazılı Tapşırıqlar:
Aşağıdakı template-dən istifadə edərək öz analizinizi aparın:
# Sizin tələbə nömrənizi istifadə edin
set.seed(sizin_tələbə_nömrəsi) # Məsələn: set.seed(12345)
# Test məlumatlarının yaradılması
n_students <- 50
n_items <- 12
# Öz test məlumatlarınızı yaradın
my_test_data <- matrix(
rbinom(n_students * n_items, 1, 0.6),
nrow = n_students, ncol = n_items
)
colnames(my_test_data) <- paste0("Sual_", 1:n_items)
# TAPŞİRIQLAR:
# 1. Ümumi balları hesablayın
total_scores <- rowSums(my_test_data)
# 2. Əsas statistik göstəriciləri hesablayın
# Orta bal, mediana, standart sapma, min, max
# 3. Bənd çətinlik indekslərini hesablayın
item_difficulty <- colMeans(my_test_data)
# 4. Ən asan və ən çətin sualı tapın
easiest_item <- which.max(item_difficulty)
hardest_item <- which.min(item_difficulty)
# 5. Cronbach Alpha hesablayın
library(psych)
reliability <- psych::alpha(my_test_data)
# 6. Balların paylanma qrafikini çəkin
hist(total_scores, main = "Test Ballarının Paylanması")
# 7. Bənd çətinlik cədvəli hazırlayın
item_table <- data.frame(
Sual = colnames(my_test_data),
Çətinlik = round(item_difficulty, 3),
Səviyyə = ifelse(item_difficulty > 0.7, "Asan",
ifelse(item_difficulty > 0.3, "Orta", "Çətin"))
)
print("Nəticələrinizi interpretasiya edin...")Tapşırıq Sualları: 1. Testin orta çətinlik səviyyəsi necədir? 2. Hansı suallar dəyişdirilməlidir və niyə? 3. Testin etibarlılığı necədir və bu nə deməkdir?
Hər sual üçün minimum 150 söz yazın və konkret nümunələr verin:
Bu sualları cavablandıraraq dərsi nə qədər mənimsədiyinizi yoxlayın:
✅ Həqiqi bal (T) anlayışının dərin analizi - Həqiqi bal nədir və necə müəyyən edilir? - Paralell testlər və onların xüsusiyyətləri - Həqiqi bal spektrinin xüsusiyyətləri
✅ Xəta komponenti (E) və onun xüsusiyyətləri - Xəta növləri: sistematik və təsadüfi - Xətanın mənbələri və onların nəzarəti - Xəta dispersiyasının hesablanması
✅ CTT fərziyyələrinin R simulyasiyaları - Fərziyyələrin yoxlanması - Fərziyyələrin pozulması və nəticələri - Real məlumatlarla model yoxlanması
✅ Etibarlılıq əmsalının ətraflı analizi - Müxtəlif etibarlılıq növləri - Etibarlılığın yaxşılaşdırılması yolları - Etibarlılıq və validlik arasındakı əlaqə
Oxumaq üçün: - Allen & Yen (2002), Fəsil 2: “The Test Score Model” (səh. 26-55) - Lord & Novick (1968), Fəsil 2: “The Theory of Mental Tests” (seçilmiş hissələr)
Video materiallar: - CTT Model Explained - Understanding True Scores
📖 Tövsiyə olunan əsas mənbələr:
R Paketi və Kodlar: - psych paketi: Psixometrik analizlər - CTT paketi: Klassik test nəzəriyyəsi - RStudio Tutorials: R öyrənmək üçün
Akademik Platformalar: - Psychometrics Centre, Cambridge - NCME - National Council on Measurement in Education - APA Division 5 - Quantitative Psychology
Onlayn Kurslar: - Coursera: Measurement and Assessment - edX: Introduction to Psychometrics
🎉 Əla işlər!
Siz Klassik Test Nəzəriyyəsi səyahətinizdə ilk və ən mühüm addımı müvəffəqiyyətlə atdınız!
Bu dərsdə öyrəndiyiniz: - Test nəzəriyyəsinin əsas prinsipləri - Psixometrik düşünmə tərzi - R-da praktik analiz bacarıqları - Tənqidi qiymətləndirmə qabiliyyəti
Bu biliklər sizə psixologiya, təhsil və digər sahələrdə testlərin düzgün istifadəsində böyük kömək edəcək.
Növbəti dərsdə görüşənədək - Uğurlar! 🚀
Suallarınız varsa: - 📧 E-mail: course@example.com - 💬 Telegram: @ctt_course_support - 🌐 Kurs saytı: www.example.com/ctt
Məsləhət saatları: - Çərşənbə axşamı: 18:00-20:00 - Cümə axşamı: 16:00-18:00
Bu dərs materialı Allen və Yen (2002) “Introduction to Measurement Theory” kitabına əsaslanır və müasir R proqramlaşdırma təcrübəsi ilə zənginləşdirilib.
Son yenilənmə: 2025-07-17 | Versiya: 2.0 | Müəllif: Psixometriya Kursu Komandası